<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>RegExp</title>
	</head>
	<body>
		<p id="box"></p>
		<script type="text/javascript">
		/**
		*   //创建
		* 	var reg=/aa/img;//字面量创建
		*   reg=new RegExp("aa","img");//constructor创建 	
		* 
		* 	2中创建方式之间是有区别的,其中字面量形式的正则表达式会共享同一个RegExp实例。而使用constructor创建的是单独的新实例。
		* 	//这个例子有点问题！！！
		* 	for(var i=0;i<5;i++){
			reg=/.[bc]aa/g;//字面量创建
			console.log("字面量："+reg.test("adasfbaabbbuhhh"));//true
			}
			for(var i=0;i<5;i++){
			reg1=new RegExp(".[bc]aa","img");//对象创建
			console.log("构造函数:"+reg1.test("adasfbaabbbhhuu"));//true
			}
			
			//每个实例都具有的属性
		* 	{reg.global,
		* 	reg.lastIndex,//下一次要查找的字符串的起始位置
		* 	reg.ignoreCase,
		* 	reg.multiline,
		* 	reg.source}
		* 	//每个实例都具有的方法
		* 	var match = reg.exec(text);
		* 	{match.index,//当前查找的字符串在整个字符串中位置
		*	 match.input,//表示要应用的字符串
		*	 match[0],
		*	 match[1],
		*	 ..
		* 	}
		* 	//exec() 的捕获组功能
		* 	var text= "mom and dad nad baby";
		* 	var pat=/mom( and dad( and baby)?)?/ig;
		* 	var match=pat.exec(text);
		* 	console.log(match[0]);//mom and dad and baby
		* 	console.log(match[1]);//and dad and baby
		* 	console.log(match[2]);//and baby
		* 	//exec() 具体功能参数
		*		var reg=/(get|put|set|let|it)/g;//全局匹配
		*		var text="I get the apple,because you put it in my bag,let me give it to you.";			
		*		var match=reg.exec(text)
		*		for(;match.index!=null;){
		*			match=reg.exec(text);
		*			console.log("当前匹配的字符串的位置:"+match.index);
		*			console.log("与整个字符串匹配:"+match[0]);
		*			console.log("下次查找位置:"+reg.lastIndex);
		*			console.log("应用的字符串："+match.input)			
		*		}
		* 
		* 
		* 	//test() param:str String return:bool(是否找到对应字符串)
		* 
		* 	var reg=/(get|put|set|let|it)/g;
		*	var text="I get the apple,because you put it in my bag,let me give it to you.";			
		*	var isHave=reg.test(text);
		*	console.log(isHave)//true
		* 
		* 
		* 	//RegExp Constructor属性
		* 	var reg=/(..)or(.)/g;
		*			
		*	var text="this has been a short summer";
		*	if(reg.test(text)){
		*		console.log(RegExp.$1);//sh
		*		console.log(RegExp.$2);//r
		*	}
		* 
		* 
		* 	//匹配模式标志
		* 	i:(case-insensitive) 不区分大小写模式
		* 	m:(multine)多行匹配模式
		* 	g:(global)全局匹配模式
		* 
		* 	//需要转义的元字符(因为他们在正则表达式中有特殊含义，所以要匹配他们时，必须转义)
		* 	{ [ ( \ ^ $ | ) ? * + . ] }
		* 	每一个转义元字符的用处：
		* 	{m,n} ---//reg=/abc{1,2}/匹配abc 1到2次
		* 	[a-z] ---//reg=/[a-z]/;匹配a-z其中任意一个字母
		*    () ---//匹配分组，将括号里的内容视为一个整体（实现捕获组功能 eg:reg=/(..)or(.)/);
		* 	re = /abc{2}/;//将匹配abcc  
		* 	re = /(abc){2}/;//将匹配abcabc
		* 	|---//候选组，也就是或的意思
		* 	re = /^a|bc$/;//将匹配开始位置的a或结束位置的bc
		*	re = /^(a|bc)$/;//将匹配a或bc  
		*  		
		 * */
		//var reg=/(get|put|set|let|it)/g;
		//var text="I get the apple,because you put it in my bag,let me give it to you.";
	</script>
	</body>
</html>
